This invention relates to a data write method into a nonvolatile memory capable of deleting data in units of block, an information processing device to achieve the data write method, and a recording medium storing a data write control program to execute the data write method.
In general, a nonvolatile memory such as a flash memory allows the data write/read to be conducted in word units, but requires that the data deleted in units of multiple words, i.e., in block units. Therefore, in rewriting data at an address, a block of data corresponding to the address subjected to the rewriting is once copied into a cache memory that can be accessed faster than the nonvolatile memory. Then, after renewing the stored content of the cache memory by data to be rewritten, the block data corresponding to the address subjected to the rewriting is deleted from the nonvolatile memory. Then, the data stored in the cache memory is written in block units into the corresponding area in the nonvolatile memory. Thus, the rewriting requires complicated processing.
This complicated process causes frequent access to the nonvolatile memory. Therefore, various methods have been suggested to improve the efficiency of data writing using cache memory.
For example, Japanese patent application laid-open No. 5-28039 (1993) discloses such a kind of storing device. This storing device offers a data write processing, described below, using a cache memory. When a write instruction is issued, a block data corresponding to an address subjected to the writing is read from the nonvolatile memory. The block data read is renewed (replaced) by data designated in the write instruction and is once stored into the cache memory. Then, the block data, read previously, in the nonvolatile memory is deleted. Then, the write processing of the data being stored in the cache memory into the corresponding area in the nonvolatile memory is conducted at a given timing. This given timing is defined as a case of having no access request to that block during a given time, a case of being close to lacking in the capacity of cache memory, a case of detecting the turn off of the power supply of device etc.
Thus, in the above prior art, the timing of writing the data being stored in the cache memory into the nonvolatile memory is normally defined as the case of having no access request to that block during a given time. This means that the data being stored in the cache memory is written into the nonvolatile memory by using the elapsed time as a trigger. Accordingly, there is a problem that there occurs the processing overhead from after issuing the write instruction until writing the data being stored in the cache memory into the nonvolatile memory.
Furthermore, in the above prior art, given that the capacity of cache memory corresponds to, e.g., the amount of one block, the data stored in the cache memory needs to be stored into the corresponding area in the nonvolatile memory every time the write instruction is issued. Therefore, since the number of access to the nonvolatile memory increases, the processing overhead occurs as well.
Accordingly, it is an object of the invention to provide a method for writing a data into a nonvolatile memory that the number of access to the nonvolatile memory reduces, thereby the processing overhead can be reduced.
It is a further object of the invention to provide an information processing device that offers a write control operation to reduce the number of access to a nonvolatile memory, so that the processing overhead can be reduced.
It is a still further object of the invention to provide a recording medium that offers a write control program to reduce the number of access to a nonvolatile memory, so that the processing overhead can be reduced.
According to the invention, a method for writing a data into a nonvolatile memory that allows data deletion in units of block, comprises the steps of:
storing the identification information of a block to which a data being stored in a cache memory having an access speed faster than the nonvolatile memory belongs; and
when writing a write data into the nonvolatile memory, determining whether the data being stored in the cache memory is stored into a corresponding area in the nonvolatile memory or not, based on the identification information of a block to which the write data belongs and the identification information stored previously.
According to another aspect of the invention, a method for writing a data into a nonvolatile memory that allows data deletion in units of block, comprises the step of:
when a file close instruction to terminate the file access to a file that exists in the nonvolatile memory is issued, the file being currently in written and opened status, and when there is no file being opened except the file subjected to the file close by the file close instruction, controlling a data being stored in a cache memory having an access speed faster than the nonvolatile memory to be stored into a corresponding area in the nonvolatile memory.
According to another aspect of the invention, an information processing device capable of issuing a data write instruction, comprises:
a nonvolatile memory capable of deleting a data in units of block;
a cache memory having an access speed faster than the nonvolatile memory;
an identification information storing means that stores the identification information of a block to which a data being stored in the cache memory belongs; and
a write control means that controls the write operation of a data;
wherein the write control means calculates the identification information of a block to which a data subjected to a data write instruction belongs when the data write instruction is issued, and determines whether the data being stored in the cache memory is stored into a corresponding area in the nonvolatile memory or not, based on the calculated identification information and the identification information stored in the identification information storing means.
According to another aspect of the invention, a recording medium readable by a computer for storing a data write control program to execute a data write into a nonvolatile memory capable of deleting a data in units of block, the data write control program comprises the processing steps of:
storing the identification information of a block to which a data being stored in a cache memory having an access speed faster than the nonvolatile memory belongs; and
when writing a write data into the nonvolatile memory, determining whether the data being stored in the cache memory is stored into a corresponding area in the nonvolatile memory or not, based on the identification information of a block to which the write data belongs and the identification information stored previously.